﻿using System;
using System.Data;
using System.Configuration;
using System.Collections.Generic;
using System.Linq;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using NUnit.Framework;
using NHibernate;
using NHibernate.Cfg;
using NHibernate.Criterion;

/// <summary>
/// Pruebas unitarias Ingresar Propuesta
/// </summary>

    [TestFixture]
    public class UnitTestIngPropuesta
    {
        
        private PropuestaControl _propuestaControl;
        private Propuesta _propuesta;
        private Propuesta _propuesta2;
        ISession session = NHibernateControl.GetCurrentSession();
        //ITransaction tx = session.BeginTransaction();
        ICriteria _miCriteria;
        IList<Propuesta> _listaPropuestas;

        [SetUp]
        public void Init() {
            _propuestaControl = new PropuestaControl();
            Assert.IsNotNull(_propuestaControl);

            _propuesta = new Propuesta();
            _propuesta.ApellidoReceptor = "Perez";
            _propuesta.CargoReceptor = "Director";
            _propuesta.Cliente = "Miguel Castillos";
            _propuesta.Codigo = "1234";
            _propuesta.Fecha = Convert.ToDateTime("04/23/2009");
            _propuesta.Id = 100000;
            _propuesta.NombreReceptor = "Pedro";
            _propuesta.Status = 0;
            _propuesta.Titulo = "KLH";
            _propuesta.Version = 1.12;

            Assert.IsNotNull(_propuesta);
            
        }

        [Test]
        public void Propuesta() {

            _propuestaControl.IngresarPropuesta(_propuesta);            
            _propuesta2 = (Propuesta) session.Load(typeof(Propuesta),"1234");
            Assert.AreEqual(_propuesta, _propuesta2);

            _propuesta.Codigo = "9876";
            _propuestaControl.ModificarPropuesta(_propuesta);
            _propuesta2 = (Propuesta)session.Load(typeof(Propuesta), "9876");
            Assert.AreEqual(_propuesta, _propuesta2);
            string codigo = "9876";
            string param = "Codigo";
            _listaPropuestas = _propuestaControl.BusquedaPropuesta(param, codigo);
            Assert.IsNotNull(_listaPropuestas);
            IEnumerator iep;
            iep = _listaPropuestas.GetEnumerator();
            Propuesta propuestaAux;
            while (iep.MoveNext())
            {
                propuestaAux = (Propuesta)iep.Current;
                Assert.AreEqual(propuestaAux.Codigo,codigo);

            }


            session.Delete(_propuesta);
        }

        


    }
